<?php
$idSession=@$_REQUEST['id'];
$action=@$_REQUEST['action'];
$cheat=@$_REQUEST['cheat'];
$tour="1";
$placees="0";
$nonplacees="0";
$message="0";
$session="0";
$soluce="";
if ($idSession!="") {
	$idSession=session_id($idSession);
}
session_start();

switch ($action) {
	case "commencer":
		initialiser($message, $soluceAffichee, $soluce, $cheat);
		$_SESSION["tour"]=1;
		$_SESSION["soluceAffichee"]=$soluceAffichee;
		$_SESSION["soluce"]=$soluce;
		break;
	case "jouer":
		$jeu=@$_REQUEST['jeu'];
		$tour=$_SESSION["tour"];
		$soluce=$_SESSION["soluce"];
		$soluceAffichee=$_SESSION["soluceAffichee"];
		jouer($jeu, $placees, $nonplacees, $message, $tour, $soluce);
		break;
	default:
		noComprendo($message);
		break;
}

$retour="";
$retour.=session_id();
$retour.="#";
$retour.=$tour;
$_SESSION["tour"]=$tour;
$retour.="#";
$retour.=$placees;
$retour.="#";
$retour.=$nonplacees;
$retour.="#";
$retour.=$message;
$retour.="#";
$retour.=$soluceAffichee;
print $retour;

function noComprendo(&$message) {
	$message = "WHAT ?";
}

function initialiser(&$message, &$soluceAffichee, &$soluce, $cheat) {
	$message="Bienvenue";
	genGame($cheat, $soluceAffichee, $soluce);
}

function jouer($jeu, &$placees, &$nonplacees, &$message, &$tour, $soluce) {
	$nbPlacees=0;
	$nbNonPlacees=0;
	$reliquat="";
	$reliquatSoluce="";
	// trouver les bien placees
	for ($i=0; $i<4; $i++) {
		if ($jeu[$i]==$soluce[$i]) {
			$nbPlacees++;
			$jeu[$i]="1";
			$soluce[$i]="0";
		}
	}

	// les mal placees
	for ($i=0; $i<4; $i++) {
		for ($j=0; $j<4; $j++) {
			if ($jeu[$i]==$soluce[$j]) {
				$nbNonPlacees++;
				$soluce[$j]="0";
				break;
			}
		}
	}
	$placees=$nbPlacees;
	$nonplacees=$nbNonPlacees;
	$tour++;
	$message=genMessage($nbPlacees, $nbNonPlacees);
}

function genMessage($nbPlacees, $nbNonPlacees) {
	// score de 0 a 12
	// 4 possibilite de message par tranche de score
	$option=rand(1,4);
	$score= 3*$nbPlacees + $nbNonPlacees;
	if ($score==0) {
		switch ($option) {
			case 1:
				return "Essaie encore...";
			case 2:
				return "Retourne jouer aux petits chevaux";
			case 3:
				return "Soyons indulgent";
			case 4:
				return "Au moins, ca ne buggue pas, c'est deja ca";
		}
	}
	if ($score<6) {
		switch ($option) {
			case 1:
				return "Tu es sur la bonne voie";
			case 2:
				return "Quelle prise de tete";
			case 3:
				return "Ad augusta per angusta";
			case 4:
				return "C'est un bon debut !!!";
		}
	}
	if ($score<12) {
		switch ($option) {
			case 1:
				return "Facile maintenant";
			case 2:
				return "La situation est bien meilleure";
			case 3:
				return "Pas mal du tout";
			case 4:
				return "Encore quelques efforts";
		}
	}
	// sinon
	return "Bien joue";
}
function genGame($cheat, &$soluceAffichee, &$soluce) {
	$soluce="";
	for ($i=0; $i<4; $i++) {
		$soluce.=pseudoAlea();
	}
	if ($cheat)
	{
		$soluceAffichee=$soluce;
	}
	else {
		$soluceAffichee="A vous de trouver";
	}
}
function pseudoAlea() {
	$alea=rand(1,8);
	switch ($alea) {
		case 1:
			return "r";
			break;
		case 2:
			return "y";
			break;
		case 3:
			return "g";
			break;
		case 4:
			return "b";
			break;
		case 5:
			return "o";
			break;
		case 6:
			return "w";
			break;
		case 7:
			return "p";
			break;
		case 8:
			return "f";
			break;
	}
}
?>